home *** CD-ROM | disk | FTP | other *** search
- 10 REM CURSORS
- 11 :
- 980 GOSUB 5410:REM LOAD SPRITE FILES
- 982 POKE 53265,PEEK(53265)AND239
- 985 POKE 56578,PEEK(56578)OR3:REM SET CIA
- 990 POKE56576,(PEEK(56576)AND252)OR3:REM SET BANK 0
- 992 POKE 53272,(PEEK(53272)AND15)OR16:REM SET SCREEN
- 993 POKE53272,(PEEK(53272)AND240)OR4:REM SET BIT MAP
- 996 POKE53265,PEEK(53265)AND223:REM TURN OFF MULTICOLOR
- 997 POKE53270,PEEK(53270)AND239:REM TURN OFF BIT MAP
- 998 POKE 49191,3:POKE49194,4
- 1000 REM*********************************
- 1002 REM CURSOR ROUTINES
- 1004 REM*********************************
- 1005 PRINTCHR$(147)
- 1006 REM
- 1008 REM
- 1009 CLR
- 1010 GOSUB 21200:REM SETUP VARIABLE NAMES
- 1012 POKE S1,6:POKE S2,6:POKE M1,255:POKEM2,255:REM SET TABLET VALUES
- 1015 :
- 1020 POKE LO,1:POKE LE,0:POKE SK,0:POKE SN,0:POKE P4,14
- 1025 PRINTCHR$(147)
- 1026 POKE 53265,PEEK(53265)OR16
- 1030 POKE CB,13:POKE CS,12
- 1040 PRINTCHR$(144)
- 1050 PRINTCHR$(147):PRINT" CURSOR ROUTINES":PRINT:PRINT
- 1060 PRINT" TEXT CURSOR":PRINT
- 1070 PRINT" SPRITE CURSOR":PRINT
- 1080 PRINT" MOUSE CURSOR":PRINT
- 1090 PRINT" SPLIT CURSOR":PRINT
- 1100 PRINT" MAIN MENU"
- 1130 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT
- 1135 PRINT:PRINT:PRINT:PRINT:PRINT" PRESS LEFT BUTTON TO MAKE SELECTION"
- 1200 :
- 1390 REM*******LOCATE CURSOR***********
- 1410 POKE SF,0:SYS SP:POKE SF,2:POKE XS,80:POKE XF,80:POKE H3,0:REM COL CURSOR
- 1420 SYS SM:SYS SP:BS=PEEK(YL)
- 1430 IF PEEK(LP)=1 THEN 1440
- 1432 GOSUB 21900:IF SW=0 THEN 1420
- 1434 ON SW GOTO 1440,1420,1440,1000,1000,6000
- 1440 IF BS<71 THEN 1420
- 1450 IF BS<81 THEN N=1:GOTO 1600
- 1460 IF BS<87 THEN 1420
- 1470 IF BS<96 THEN N=2:GOTO 1600
- 1475 IF BS<102 THEN 1420
- 1480 IF BS<112 THEN N=3:GOTO 1600
- 1490 IF BS<120 THEN 1420
- 1500 IF BS<128 THEN N=4:GOTO 1600
- 1510 IF BS<134 THEN 1420
- 1520 IF BS<144 THEN N=5:GOTO 1600
- 1530 GOTO 1420
- 1600 POKE SN,0
- 1610 ON N GOTO 2000,3000,4000,5000,6000
- 1700 :
- 2000 REM**********************************
- 2010 REM* TEXT CURSOR *
- 2020 REM**********************************
- 2030 PRINTCHR$(147)
- 2031 POKE CS,0:PRINTCHR$(159)
- 2032 GOSUB 2200:REM INSTRUCTIONS
- 2033 POKE 251,255:POKE252,3:POKE 49239,0:POKE XN,0:POKE YN,0
- 2035 ON SW GOTO 2036,1020,2036,1020,1020,6000
- 2036 PRINTCHR$(147):POKE CS,3:PRINTCHR$(147):POKE CS,0:REM CLEAR COLOR MEMORY
- 2060 PRINT" TEXT CURSOR":PRINT:PRINT
- 2070 PRINT" 'THE TIME HAS COME,' THE WALRUS SAID,":PRINT
- 2072 PRINT" 'TO TALK OF MANY THINGS,":PRINT
- 2074 PRINT" OF SHOES AND SHIPS AND SEALING WAX,":PRINT
- 2076 PRINT" AND CABBAGES AND KINGS.":PRINT
- 2078 PRINT" AND WHY THE SEA IS BOILING HOT,":PRINT
- 2080 PRINT" AND WHETHER PIGS HAVE WINGS.'":PRINT
- 2082 PRINT
- 2084 PRINT" BY LEWIS CARROLL":PRINT:PRINT
- 2085 PRINT" 'FROM THE WALRUS AND THE CARPENTER'":PRINT:PRINT
- 2086 PRINT" PRESS THE F1 KEY TO EXIT"
- 2090 POKE LE,0 :REM POKE WITH 1-6 FOR SMOOTHING
- 2100 POKE LO,1 :REM POKE WITH 1 FOR A LOCKED CURSOR
- 2105 IV=0
- 2107 POKET3,0:POKET3+1,0
- 2110 SYS TE :REM CALL TEXT CURSOR ROUTINE
- 2112 IF IV=1 THEN GOSUB 2600
- 2120 IF PEEK(LP)=1 THEN GOSUB 2400:REM CHECK IF LEFT BUTTON PRESSED
- 2125 IF PEEK(RP)=1 THEN 2020
- 2126 GETQQ$:IFQQ$="" THEN 2130
- 2127 IF ASC(QQ$)=136 THEN 6000
- 2128 IF ASC(QQ$)=133 THEN 1000
- 2130 GOTO2110
- 2140 PRINTCHR$(147):GOTO1020
- 2150 :
- 2200 REM**********INSTRUCTIONS**********
- 2210 PRINTCHR$(147):PRINT" TEXT CURSOR":PRINT:PRINT
- 2220 PRINT" THIS UTILITY DEMONSTRATES HOW TO MOVE"
- 2230 PRINT"A COMMODORE GRAPHICS CHARACTER ON THE"
- 2240 PRINT"TEXT SCREEN.":PRINT
- 2250 PRINT" THIS IS EXTREMELY USEFUL IN SELECTING"
- 2260 PRINT"ITEMS OFF THE TEXT SCREEN, OR IN CUT "
- 2270 PRINT"AND PASTE GRAPHICS APPLICATIONS.":PRINT
- 2280 PRINT" THIS CAN ALSO BE USED FOR EDITING TEXT"
- 2290 PRINT"IN BUSINESS AND WORD PROCESSING"
- 2300 PRINT"APPLICATIONS."
- 2310 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT
- 2320 PRINT" CLICK THE LEFT BUTTON TO CONTINUE"
- 2330 GOSUB 21900:IFSW=0THEN 2330
- 2350 RETURN
- 2400 REM******INVERSE WORDS*****
- 2410 MC=1024+PEEK(XN)+PEEK(YN)*40
- 2420 CN=PEEK(MC)
- 2430 IF(CN=160)OR(CN<129)THEN RETURN
- 2435 IV=1
- 2440 FOR HH=1 TO 20
- 2450 NN=PEEK(MC-HH)
- 2455 IF NN>127 THEN RETURN
- 2460 IF NN=32 THEN 2500
- 2470 POKE MC-HH,NN+128
- 2480 NEXT HH
- 2500 FOR HH=1 TO 20
- 2510 NN=PEEK(MC+HH)
- 2520 IF NN=32 THEN RETURN
- 2525 IF NN>127 THEN RETURN
- 2530 POKE MC+HH,NN+128
- 2540 NEXT HH
- 2550 RETURN
- 2600 REM******INVERSE LETTER****
- 2610 NC=1024+PEEK(XN)+PEEK(YN)*40
- 2620 IF MC<>NC THEN IV=0:POKE MC,CN
- 2630 RETURN
- 2700 :
- 3000 REM********************************
- 3001 REM SPRITE CURSOR
- 3002 REM********************************
- 3003 PRINTCHR$(147)
- 3010 POKE CB,2:POKE CS,5:PRINTCHR$(144)
- 3015 GOSUB 3100:REM INSTRUCTIONS
- 3016 ON SW GOTO 3020,1020,3020,1020,1020,6000
- 3020 PRINTCHR$(147):PRINT" SIMPLE SPRITE DEMONSTRATION"
- 3030 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT
- 3040 PRINT" PRESS LEFT BUTTON":PRINT
- 3050 PRINT" TO TURN OFF SPRITE"
- 3052 POKE P4,14
- 3055 POKE SF,0
- 3056 POKE LE,0
- 3060 SYS SP
- 3070 IF PEEK(LP)=1 THEN POKE (SN),0:GOTO 1020
- 3071 IF PEEK(RP)=1 THEN POKE (SN),0:GOTO 3000
- 3072 GETQQ$:IFQQ$="" THEN 3080
- 3073 SW=ASC(QQ$)-132:IF SW<0THEN SW=0
- 3074 ON SW GOTO 1020,3000,1020,6000,1020,6000
- 3080 GOTO 3060
- 3090 :
- 3100 REM *******INSTRUCTIONS************
- 3110 PRINTCHR$(147):PRINT" SPRITE CURSOR":PRINT:PRINT
- 3120 PRINT" A SPRITE CURSOR IS THE MOST USED TYPE"
- 3130 PRINT"CURSOR IN COMMODORE PROGRAMS.":PRINT
- 3140 PRINT" THE SPRITE CURSOR CAN BE PLACED ON"
- 3150 PRINT"EITHER THE TEXT SCREEN OR THE HIGH-"
- 3160 PRINT"RESOLUTION SCREEN.":PRINT
- 3170 PRINT" IT MOVES VERY FAST AND WILL NOT"
- 3180 PRINT"INTERFERE WITH OBJECTS ON THE SCREEN.":PRINT
- 3190 PRINT" SPRITES DO HAVE COLLISION DETECTION"
- 3200 PRINT"AND CAN INTERACT WITH OTHER SCREEN "
- 3210 PRINT"ELEMENTS IF DESIRED.":PRINT
- 3220 PRINT" MOST GAMES USE SPRITES AS THE MOVING"
- 3230 PRINT"OBJECTS.":PRINT:PRINT:PRINT
- 3240 PRINT" CLICK THE LEFT BUTTON TO CONTINUE"
- 3250 GOSUB 21900:IF SW=0 THEN 3250
- 3280 RETURN
- 3300 :
- 4000 REM*********************************
- 4010 REM* MOUSE ROUTINE *
- 4020 REM*********************************
- 4021 GOSUB 4200:REM INSTRUCTIONS
- 4022 VX=.7:VY=.7
- 4024 POKE SF,0:SYS SP:IFPEEK(LP)=1THEN1020
- 4025 IF PEEK(RP)=1THENPOKE SN,0:GOTO4000
- 4030 XC=160:YC=100
- 4035 POKE LO,0
- 4040 SYS SM:IF PEEK(LP)=1 THEN 1020
- 4042 IF PEEK(RP)=1 THENPOKESN,0:GOTO4000
- 4043 GET QQ$:IF QQ$=CHR$(136) THEN 6000
- 4050 X=INT(PEEK(SX)*VX):Y=INT(PEEK(SY)*VY)
- 4060 IF((X<=8)AND(Y<=8))THEN F=0:GOTO4040
- 4070 IF F=0 THEN PX=X:PY=Y:F=F+1:GOTO4040
- 4080 DX=X-PX:DY=Y-PY:REM CALCULATE DIFFERENCE
- 4090 XC=XC+DX:YC=YC+DY:REM ADD DIFFERENCE TO CURSOR LOCATION
- 4100 IF XC>343 THEN XC=343
- 4110 IF XC<11 THEN XC=11
- 4120 IF YC>249 THEN YC=249
- 4130 IF YC<40 THEN YC=40
- 4135 IF XC<256 THEN QX=XC:POKE XI,0
- 4140 IF XC>255 THEN QX=XC-256:POKE XI,1
- 4145 POKE XL,QX:POKE YL,YC
- 4150 PX=X:PY=Y
- 4155 GOSUB 21900
- 4156 ON SW GOTO 1020,4000,1020,4000,1020,6000
- 4160 GOTO4040
- 4180 :
- 4200 REM*********INSTRUCTIONS***********
- 4205 POKE SN,0
- 4210 PRINTCHR$(147):PRINT" MOUSE-SPRITE CURSOR":PRINT:PRINT
- 4220 PRINT" A MOUSE IS A RELATIVE MOTION STYLE OF"
- 4230 PRINT"POINTING IN CONTRAST TO ABSOLUTE OR "
- 4240 PRINT"DIRECT POINTING.":PRINT
- 4250 PRINT" THE AMOUNT OF CURSOR MOTION CAN BE "
- 4260 PRINT"SCALED UP OR DOWN BY CHANGING VX AND VY"
- 4270 PRINT"IN THE BASIC PROGRAM.":PRINT
- 4280 PRINT" MOUSE MODE CAN BE USED TO ACHIEVE HIGH"
- 4290 PRINT"PRECISION IN DRAWING OR POINTING AT"
- 4300 PRINT"OBJECTS ON THE SCREEN.":PRINT
- 4310 PRINT:PRINT:PRINT:PRINT:PRINT
- 4320 PRINT:PRINT:PRINT" CLICK THE LEFT BUTTON TO CONTINUE"
- 4330 GOSUB 21900:IFSW=0THEN4330
- 4340 ON SW GOTO 4350,1020,4350,1020,1020,6000
- 4350 PRINTCHR$(147):PRINT" MOUSE SPRITE CURSOR":PRINT:PRINT:PRINT:PRINT
- 4360 PRINT" STROKE YOUR FINGER OR STYLUS ON THE":PRINT
- 4370 PRINT" TABLET SEVERAL TIMES IN DIFFERENT ":PRINT
- 4380 PRINT" DIRECTIONS AND WATCH THE CURSOR MOVE.":PRINT
- 4390 PRINT:PRINT:PRINT:PRINT:PRINT
- 4400 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT
- 4420 RETURN
- 4999 :
- 5000 REM*********SPLIT CURSOR**************
- 5001 PRINTCHR$(147)
- 5005 GOSUB 5600:REM INSTRUCTIONS
- 5010 ON SW GOTO 5030,1020,5030,1020,1020,6000
- 5030 POKE CB,2:POKE CS,5:PRINTCHR$(144)
- 5050 PRINTCHR$(147):PRINT" SPLIT CURSOR DEMONSTRATION"
- 5060 POKE 214,10:PRINT:PRINT"[195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195]"
- 5090 POKE SF,0
- 5092 SYS SP
- 5093 IF PEEK(RP)=1 THEN SW=2:GOTO 5101
- 5094 IFPEEK(LP)=1 THEN SW=1:GOTO5102
- 5096 GOSUB 21900
- 5097 IF SW=0 THEN 5105
- 5101 IF(SW=2)OR(SW=4) THENPOKE SN,0:POKEP4,14:GOTO 5005
- 5102 IF(SW=1)OR(SW=3)OR(SW=5)THEN POKE SN,0:POKE P4,14:GOTO 1020
- 5103 IF SW=6 THEN POKE SN,0:POKE P4,14:GOTO6000
- 5105 IF PEEK(SY)<120 THEN POKE P4,13:POKE SK,1:REM DRAW WHITE SPRITE
- 5106 IF PEEK(SY)>120 THEN POKE P4,15:POKE SK,0:REM DRAW BLACK SPRITE
- 5200 GOTO 5090
- 5300 :
- 5410 OPEN 2,8,2,"0:SPRITE.UPARROW,S,R"
- 5420 FORI=832TO895
- 5430 INPUT#2,A
- 5440 POKE I,A
- 5520 NEXT I
- 5530 OPEN 3,8,3,"0:SPRITE.DNARROW,S,R"
- 5540 FORI=960 TO 1023
- 5550 INPUT#3,A
- 5560 POKE I,A
- 5570 NEXT I
- 5580 CLOSE2:CLOSE3
- 5590 RETURN
- 5595 :
- 5600 REM********INSTRUCTIONS***********
- 5605 POKE CS,12:POKE CB,13
- 5610 PRINTCHR$(147):PRINT" SPLIT CURSOR":PRINT:PRINT
- 5620 PRINT" THERE ARE MANY TIMES WHEN YOU WANT ONE"
- 5630 PRINT"ACTIVITY IN PART OF THE SCREEN AND "
- 5640 PRINT"ANOTHER ACTIVITY IN ANOTHER PART. IT IS"
- 5650 PRINT"USEFUL TO GIVE THE USER FEEDBACK "
- 5660 PRINT"SHOWING THE REGION THEY ARE IN.":PRINT
- 5670 PRINT" THIS SPLIT CURSOR TOOL SIMPLY CHANGES"
- 5680 PRINT"THE CURSOR WHENEVER YOU CROSS A LINE.":PRINT
- 5690 PRINT" IN YOUR OWN PROGRAMS, YOU CAN MOVE THE"
- 5700 PRINT"BOUNDARIES, CHANGE THE SHAPE AND COLOR"
- 5710 PRINT"OF THE CURSOR, MAKE A MUSICAL TONE, OR"
- 5720 PRINT"DO WHATEVER YOU LIKE.":PRINT:PRINT:PRINT:PRINT:PRINT:PRINT
- 5730 PRINT" CLICK THE LEFT BUTTON TO CONTINUE"
- 5740 GOSUB 21900:IF SW=0 THEN 5740
- 5750 PRINTCHR$(147)
- 5760 RETURN
- 5999 :
- 6000 REM*******GO TO MAIN MENU********
- 6005 POKE SN,0
- 6010 CLR
- 6015 OPEN 2,8,2,"0:SPRITE.UPARROW,S,R"
- 6020 CLOSE2
- 6025 OPEN 15,8,15
- 6030 INPUT#15,A$,B$,C$,D$
- 6035 IF VAL(A$)=0 THEN 6080
- 6040 PRINT"[147]":PRINT:PRINT:PRINT:PRINT:PRINT:PRINT" ";B$
- 6045 FORI=1TO1000:NEXTI
- 6050 GOTO 1000
- 6080 CLR
- 6085 PRINT"[147]":POKE214,8:PRINT:PRINT" LOADING MAIN MENU..."
- 6090 LOAD"MENU",8
- 21000 :
- 21200 REM ************SET UPS************
- 21202 Z5=45:Z6=46:Z7=47:Z8=48:Z9=49:Z0=50:REM ZERO PAGE BASIC POINTERS
- 21204 CBRDER=53280:CSCREEN=53281
- 21205 REM ASSEMBLY ROUTINE JUMP ADDRESS NAMES
- 21208 TABRAW=49328:DEBOUNCE=49331:FILTER=49334:PERFECT=49337
- 21210 SMOOTH=49340:PADLOCK=49343:SCALE=49346:TEXTCR=49349:SPRITE=49352
- 21215 PLTDOT=49355:SETSCL=49358:TURNUN=49361:KLRCOL=49364:TRNUFF=49367
- 21220 LINE=49382:BOX=49385:RDIUS=49388:CIRCLE=49391
- 21222 KOALAPICTURE=49394
- 21223 :
- 21225 REM VARIABLE NAMES
- 21227 RX=49152:RY=49154
- 21230 B1=49156:B2=49157:LDBOUNCE=49159:RDBOUNCE=49160:LPRESS=49161:RPRESS=49162
- 21231 LX=49163:LY=49164:TX=49165:TY=49166
- 21232 FX=49168:FY=49169:UX=49172:UY=49173:ERRUR=49174:M1=49175:M2=49176
- 21235 SX=49196:SY=49197:LEVEL=49198:LOCKST=49199
- 21236 P1=49201:P2=49202:P3=49203:P4=49204
- 21238 XH=49186:S1=49187:S2=49188:YH=49190
- 21240 XS=49177:YS=49179:XF=49181:YF=49183:XNW=49185:YNW=49189
- 21245 H1=49178:H2=49180:H3=49182:H4=49184
- 21246 :
- 21250 BANKA=49191:SSTART=49194
- 21255 SFLAG=49200:SNABLE=53269:SKOLR=53287:XLOSP=53248:XISP=53264:YLOSP=53249
- 21260 MCM=49205:COLR=49206:XR=49208
- 21265 X1=49209:X2=49210:Y1=49211:Y2=49212:RADIUS=49213
- 21270 RETURN
- 21280 :
- 21900 REM****CHECK SWITCHES**************
- 21905 SW=0
- 21910 SYS PE
- 21920 IF PEEK(LP)=1 THEN SW=1
- 21930 IF PEEK(RP)=1 THEN SW=2
- 21931 IF PEEK(198)=0 THEN RETURN
- 21940 FOR I9=1 TO PEEK(198):GET QQ$:NEXT I9
- 21965 IF QQ$=CHR$(136) THEN SW=6
- 21970 RETURN
- 30000 OPEN15,8,15:PRINT#15,"S0:CURSORS":SAVE"CURSORS",8
-